Single Table, Joined Table এবং Table Per Class Strategy

Java Technologies - স্প্রিং ওআরএম (Spring ORM) Spring ORM এ Inheritance Mapping |
92
92

স্প্রিং ORM-এর মাধ্যমে Hibernate ব্যবহার করে ডেটাবেসে Inheritance Mapping করা যায়। Hibernate ইনহেরিটেন্সের জন্য তিনটি প্রধান স্ট্র্যাটেজি সরবরাহ করে:

  • Single Table Strategy
  • Joined Table Strategy
  • Table Per Class Strategy

প্রতিটি স্ট্র্যাটেজি একটি নির্দিষ্ট ডেটাবেস কাঠামোতে ডেটা সংরক্ষণের পদ্ধতি নির্দেশ করে।


Single Table Strategy

বৈশিষ্ট্য

  • পুরো ইনহেরিটেন্স হায়ারার্কি একটি মাত্র টেবিলে সংরক্ষণ করা হয়।
  • প্রতিটি সাবক্লাসের জন্য অতিরিক্ত কলাম যুক্ত হয়।
  • ডিসক্রিমিনেটর কলাম ব্যবহৃত হয় সাবক্লাসগুলো পার্থক্য করতে।

Entity ক্লাস উদাহরণ

@Entity
@Inheritance(strategy = InheritanceType.SINGLE_TABLE)
@DiscriminatorColumn(name = "type", discriminatorType = DiscriminatorType.STRING)
public class Employee {
    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    private Long id;

    private String name;

    // Getters and Setters
}

@Entity
@DiscriminatorValue("FullTime")
public class FullTimeEmployee extends Employee {
    private double salary;

    // Getters and Setters
}

@Entity
@DiscriminatorValue("PartTime")
public class PartTimeEmployee extends Employee {
    private double hourlyRate;

    // Getters and Setters
}

SQL টেবিল

CREATE TABLE employee (
    id BIGINT AUTO_INCREMENT PRIMARY KEY,
    name VARCHAR(255),
    salary DOUBLE,
    hourlyRate DOUBLE,
    type VARCHAR(255)
);

Joined Table Strategy

বৈশিষ্ট্য

  • প্রতিটি ক্লাসের জন্য পৃথক টেবিল তৈরি হয়।
  • প্যারেন্ট টেবিল এবং চাইল্ড টেবিলের মধ্যে JOIN সম্পর্ক থাকে।
  • ডেটা নরমালাইজড হয় এবং ডিস্ক স্পেস বাঁচে।

Entity ক্লাস উদাহরণ

@Entity
@Inheritance(strategy = InheritanceType.JOINED)
public class Employee {
    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    private Long id;

    private String name;

    // Getters and Setters
}

@Entity
public class FullTimeEmployee extends Employee {
    private double salary;

    // Getters and Setters
}

@Entity
public class PartTimeEmployee extends Employee {
    private double hourlyRate;

    // Getters and Setters
}

SQL টেবিল

CREATE TABLE employee (
    id BIGINT AUTO_INCREMENT PRIMARY KEY,
    name VARCHAR(255)
);

CREATE TABLE full_time_employee (
    id BIGINT PRIMARY KEY,
    salary DOUBLE,
    FOREIGN KEY (id) REFERENCES employee(id)
);

CREATE TABLE part_time_employee (
    id BIGINT PRIMARY KEY,
    hourlyRate DOUBLE,
    FOREIGN KEY (id) REFERENCES employee(id)
);

Table Per Class Strategy

বৈশিষ্ট্য

  • প্রতিটি ক্লাসের জন্য একটি টেবিল তৈরি হয়।
  • প্যারেন্ট ক্লাসের ডেটা প্রতিটি চাইল্ড টেবিলে পুনরাবৃত্ত হয়।
  • InheritanceType.TABLE_PER_CLASS ব্যবহৃত হয়।

Entity ক্লাস উদাহরণ

@Entity
@Inheritance(strategy = InheritanceType.TABLE_PER_CLASS)
public class Employee {
    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    private Long id;

    private String name;

    // Getters and Setters
}

@Entity
public class FullTimeEmployee extends Employee {
    private double salary;

    // Getters and Setters
}

@Entity
public class PartTimeEmployee extends Employee {
    private double hourlyRate;

    // Getters and Setters
}

SQL টেবিল

CREATE TABLE full_time_employee (
    id BIGINT AUTO_INCREMENT PRIMARY KEY,
    name VARCHAR(255),
    salary DOUBLE
);

CREATE TABLE part_time_employee (
    id BIGINT AUTO_INCREMENT PRIMARY KEY,
    name VARCHAR(255),
    hourlyRate DOUBLE
);

কোন স্ট্র্যাটেজি কখন ব্যবহার করবেন

স্ট্র্যাটেজিসুবিধাঅসুবিধাব্যবহারের ক্ষেত্র
Single Table Strategyদ্রুত পারফর্মেন্স, কম জটিলতাডিস্ক স্পেস অপচয়, অতিরিক্ত null ভ্যালুছোট ইনহেরিটেন্স হায়ারার্কি
Joined Table Strategyডেটা নরমালাইজড, ডিস্ক স্পেস সাশ্রয়ীJOIN অপারেশনের কারণে ধীরগতিরবড় ও জটিল ইনহেরিটেন্স কাঠামো
Table Per Class Strategyটেবিল গুলো একে অপরের সাথে স্বাধীনপ্যারেন্ট ডেটার পুনরাবৃত্তিবিশেষ ক্ষেত্রে যেখানে স্বাধীন টেবিল প্রয়োজন

সারাংশ

স্প্রিং ORM এবং Hibernate দিয়ে Inheritance Mapping করার জন্য তিনটি স্ট্র্যাটেজি রয়েছে: Single Table, Joined Table এবং Table Per Class। প্রতিটি স্ট্র্যাটেজি ডেটাবেস অপারেশনের নির্দিষ্ট প্রয়োজন অনুযায়ী ব্যবহার করা হয়। সঠিক স্ট্র্যাটেজি বাছাই করলে পারফর্মেন্স উন্নত হয় এবং ডেটাবেস ম্যানেজমেন্ট সহজ হয়।

Content added By
টপ রেটেড অ্যাপ

স্যাট অ্যাকাডেমী অ্যাপ

আমাদের অল-ইন-ওয়ান মোবাইল অ্যাপের মাধ্যমে সীমাহীন শেখার সুযোগ উপভোগ করুন।

ভিডিও
লাইভ ক্লাস
এক্সাম
ডাউনলোড করুন
Promotion